package Java.BlackHorse.Function;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;

public class FunctionDemo4 {
    /*
     * 引用方法（引用构造方法）
     * 格式： 类名 ：： new
     * 目的： 创建这个类的对象
     *
     *  方法引用：
        1. 引用处需是函数式接口

        2. 被引用的方法需要存在
        3. 被引用方法的形参和返回值需跟抽象方法的返回值保持一致
        4. 被引用的方法的功能需满足当前需求
     * */

    public static void main(String[] args) {
        /*
        *   需求：
        *       集合里存储姓名和年龄，要求封装抽象方法的形参返回值保持一致
        *  */
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"张三丰,16","周芷若,20","赵敏,30","张强,35","张无忌,40");
        //常规写法
//        List<Student>  newlist= list.
//                stream().
//                map(s -> new Student(s.split(",")[0],Integer.parseInt(s.split(",")[1]))).
//               collect(Collectors.toList());

        List<Student> newlist = list.
                stream().
                map(Student::new).
        collect(Collectors.toList());
        

        System.out.println(newlist);

    }
}
